
package at.fhj.refactor.refactorings;

import at.fhj.itm.metadata.Column;
import at.fhj.itm.metadata.Table;
import at.fhj.itm.refactor.DataRefactoring;
import at.fhj.itm.refactor.Refactoring;
import java.util.List;

/**
 *
 * @author Seuchter
 */
public interface SplitTable extends Refactoring, DataRefactoring{


    public Table getTable();
    public abstract void setTable(Table table);
    
    public List<? extends Column> getColumnsLeft();
    public void setColumnLeft(List<? extends Column> columns);

    public List<? extends Column> getColumnsRight();
    public void setColumnsRight(List<? extends Column> columns);
    public String getTableNameRight();
    public String getTableNameLeft();

    public void setTableNameLeft(String tableNameLeft);
    public void setTableNameRight(String tableNameRight);


    public String getForeignKeyName();
    
    public void setRightTablePrimaryKeyName(String righTablePrimaryKey);
    public void setForeignKeyName(String leftTableNameForeignKey);


    public String getReferencingColumnName();
    public void setReferencingColumnName(String columnName);
	public abstract void setRightTablePrimaryKeyColumnName(String name);
	public abstract void setRightTablePrimaryKeyAutoincrement(boolean autoIncrement);
	public abstract boolean hasRightTablePrimaryKeyAutoincrement();
	public abstract String getRightTablePrimaryKeyColumnName();
	



}
